Status: Full stack Software engineer with great experience in web based applications.
Position: SDE at Amazon
In May 2022 I was contacted by Amazon's Alexa team's recuiters for an SDE position. The recruiter had told me that based on my performance, I could also be offered a Sr engineer role. In the same month I had a phone screen.
Phone Screen: [Behavioral + coding, 1h]
- Interview started off with me talking about my resume. Some questions based on that. Followed by some behavioral questions like, tell me some of the technical challenges you faced in your current job and how you got around them. After that there was a coding problem.
- Subsets problem ,I solved this in about 20 minutes. The interviewer asked me to explain how it works. I explained to him the decision tree that the code will follow and all the paths it would explore, and in which order. He seemed happy.
Within 3 days the recruiter contacted me and me for my availability for an on site in Boston. I picked a date about 3 weeks ahead to give me enough time to prepare. The recruiter sent me a prep guide for the onsite. She stressed over and over how Amazon's leadership principles were of paramount importance and I should find a way to relate my experience at my previous work to the Amazon leadership principles.
So the night before the interview, although prepared, I was super worried. Unfortunately the worry got to me and I barely got 4 hours of sleep that night. No matter how desperately I tried, I couldn't sleep. So its next morning and the big day. I drink about 3 cups of coffee to ward of sleep. I get to the interview site about an hour early. I check in with the security. They check me in and send me off to the waiting area (a few floors above). I sit there trying to do some meditation while trying to also ward off sleep.
Onsite:
Round 1: [System Design, 45 min]
-
The time of the interview comes. One of their developers comes over there and greets me. He asked me if I needed a coffee or use the restroom. I answer yes to both. ( I later realized this was a mistake. By doing so I was taking away some of the time available to solve the problems. The next interview is going to start at the same time regardless.) So after that, we are in the interview room.
- First he asks me about my previous experience.
- Then some of the standard Amazon leadership questions like "Tell me a time when you disagreed with your boss".
- And a few more behavioral questions.
- Then he gives me a design question.
- Design the software for securing buildings.
- This was relevant to one of my previous roles.
- I explain to him how there would be a remote web application with a central server for the data to be stored.
- How the data would be pushed to client kiosks.
- And what features the local kiosk would need to support.
- Then he asked to add some features and asked me how I would go about it.
- What would be the security vulnerabilities, the latency issues etc.
- As far as I remember, he started of asking me some LP questions such as:
- Tell me about your yourself (the general icebreaker).
- Tell me about tim when you faced a difficult challenge.
- Tell me about a time when you needed help from someone during a project.
This round I thought went pretty well.
Round 2: [Coding, 45 min]
- As this round ends,
the next interviewer was already waiting outside.
- Again a similar pattern.
- My previous experience followed by behavioral questions.
- I was told not to give the same examples that I gave the previous interviewer.
- Problem on unique-paths, I first worked on the algorithm. Then I explained to him how I thought it should work.
- He started off with general LP questions such as:
- Tell me about a time when you thought of an unpopular idea.
- Tell me about a time when you had to decide upon something without consulting your superior.
- Tell me about a time when you had to face tight time constraints during a project.
- He didnt give me much feedback.
- Then he asked me to code it.
- I started off by writing empty methods with correct names and the correct recursive calls and base cases.
- Once I had that in place, all I had to do was to write implementations in those methods.
- He was happy at the end of it.
- He pointed out one edge case that I didnot consider.
- The case where the very first block was blocked. Besides that the code was bug free.
This round went pretty well too.
Round 3: [Behavioral + some discussion (no coding) of a technical problem, 45 min]
- Now there are two interviews waiting outside.
- One of them is a Sr level manager and another one is a Sr engineer (recent hire) who was shadowing him.
- Started with resume and behavioral.
- The behavioral was kinda intense and he kept digging for more and more details.
- There was a question "Tell me about a time with a specific example, where you thought you were right, but you were wrong.".
- Many of the behavioral questions in this round were hard to answer. I kinda felt the interview taking a downward turn.
- After the behavioral interview they asked me a question (which I don't exactly remember now) that involved something to do with quick word look ups.
- I explained the trie data structure.
- The interviewer pointed out how that didn't exactly fit all the requirements of his problem.
- I agreed, brainstormed a little and finally came up with a solution that involved a modified version of a hashtable.
But they seemed happy with the final solution.
Round 4: [Coding, 45 min]
- Then they take me to a different floor where another interviewer was waiting for me.
- The manager refers to him with the wrong name and that immidiately seemed to agitate the interviewer. I was scared this would affect how he interviews me. He starts off in an angry way. (I've heard there are stress tests at Amazon interviews, this might very well have been one of those).
- This guy seemed like a very technically strong Senior engineer. I would guess he was the bar raiser. He grills me on behavioral questions.
- He asked me for a time with a specific example, where I solved a tough problem with a simple solution. I was not able to answer this very well. This seemed to upset him.
- He proceeds to give me a coding problem.
- Problem on Reverse linked list This was a problem I had solved before with relative ease. But in my mind he had already rejected me and that panic causes me to make some basic mistakes like not declaring the variables.
- He got very agitated. He said I don't know what language you are coding in, but in Java code won't even compile if you don't declare variables. I panic even more, he abruptly cuts short the interview. He says he is late for the next round. He tells me to go eat lunch and come back at some particular time.
Lunch Break: [1 hour]
I go out for lunch. I try to compose myself. I do some deep breathing. I get a light lunch so that I don't feel sleepy. I also get more coffee.
Round 5: [Behavioral, 45 min]
-
I come back to the interview place. At the designated time another manager comes over and greets me. He was exceptionally nice.
-
This round was entirely behavioral. It almost seemed like he really wanted me to make it. The questions were very Amazon leadership principles oriented.
-
The interviewer was a senior SDE with a shadow interviewer who looked like a junior SDE. She told me about her work at Amazon (which was really awesome as she worked in the Prime Video Recommendations team). She started off with some behaviour questions such as:
- Tell me about yourself.
- Tell me about a time when you did not meet your deadlines for a project.
- Tell me about a time when you had conflicting ideas with your teammates and how did you resolve them?
-
After these, she moved on to the coding part with about 30 minutes left. The question was Same Tree, and yes, I sighed! I solved the question in 10 minutes with the recursive approach, and then another took another 10 minutes to solve it iteratviely as she asked for it in her follow-up. We discussed the time and space complexities, recusion disadvantages and in the end, with 5 minutes left, she asked me if I had any questions. I asked her about her tasks in some more details about Prime Video Recommendation systems and she was very happy to tell me about it. I also tried to let her know that I would love working on such projects some day! Overall, this interview went quite well too!
This round went pretty well too.
I received the offer within a week (10 business days).
Result:
Received the offer :
Preparation:
I started with Leetcode somewhere in mid-Feb. I have been grinding it until May and finishing about 330 problems, mostly on the Amazon list. The strong truth about negotiation is that you really need to understand the problem patterns and digest them, there is no other way to get a successful job. Also taken from my story when I look back are:
- Things happen for good, you just have to persevere and good things will happen to you.
- Familiarize yourself with the BFS method, general topics first, top 100 interview questions first, and point to company / list of topics. Know your problem-solving patterns.
- Youtube is an excellent source. Thanks to really good channels like Back to Back SWE, Tushar Roy, happygirlzt, and many more, they helped me find clear solutions to seemingly difficult problems.
- If you are preparing for Amazon, give 35% of your time to prepare for Leadership Principals (2 issues in each of the 14 LPs). Trust me, you don't want to go unprepared for them. Check out this man's amazing channel on YouTube Dan Croitor.
- Even simple LC questions seem tricky after solving 200+ questions too, so you are not alone.
- The quality of the questions is important, not the quantity. After reaching 250 marks, I repeated all the questions and resolved them again. Discover new ways to solve them and learn more! Patterns of problems enter your brain that way.
- Do not try to memorize questions but most of the time are memorized automatically. Templates like Binary Search, BFS, DFS, LL traversals, Backtracking templates, etc should be really updated!
- There comes a time of exhaustion when you do not want to continue (I experienced one). While using and learning, you get a lot of rejection and no such progress but don’t forget your ultimate goal! Work on it, I know how one can feel hopeless on a journey.
- Try to enjoy life. I was not honest. It seemed like a habit to me, though it did help but not just make Leetcode your life! I had my friends and family remind me of this!
- I’m no longer a good coder, but I like to think I’m much better than I was months ago!
- Checkout Leetcode channel Chat regularly for more information and questions. You would not get the same but it really helps!
I know that was a long post but this is it, my full experience and journey of receiving a gift from Amazon. Talking a lot about luck, trust me, but the only thing in your hand is exercise and patience. I was lucky but prepared.
Tips -
I felt that LPs and past experience along with relevant skill set matters a lot when it comes to Amazon. Yes, they do expect top notch problem solving skills, but a mistake there, can be covered by your excellent work-ex.
You need to learn to market yourself, and prove your worth. Even I'm not perfect at it. I did a lot of mistakes when tackling LPs, realized those on the fly, but gradually improved a lot in subsequent rounds. Writing stuff down helps a lot.
The amount of time required to reach a certain level of expertise with problem solving varies from person to person. Know yourself, and practice accordingly.
Pro Tip - Note that, once started with on-sites, we have to complete all interviews within 5 working days. You can choose to schedule single, multiple and even all interviews on the same day given that the slots are available. Always go with the strategy that will suit you the best based on - cooling period required after each interview, anxiety levels during wait periods etc.
Good luck with your journey!!!